package com.zl.demo.common.service.imp;

import com.zl.demo.common.mapper.BaseMapper;
import com.zl.demo.common.service.BaseService;
import com.zl.demo.utils.Classzz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

/**
 * 基础公共的ServiceImp
 * @param <T> 实体
 * @param <E> 数组
 * @param <N> 表名
 * @author zl
 */
@Service
public class BaseServiceImp<T,E,N>  implements BaseService<T,E,N> {

    @Autowired
    private BaseMapper<T> mapper;

    @Autowired
    private Classzz<T,N,E> classzz;

    /**
     * 查询列表数据
     * @param t 实体类
     * @return
     */
    @Override
    public List<T> listAll(T t) {
        List<T> list=mapper.select(t);
        return list;
    }

    /**
     * 查询数据详情
     * @param t 泛型实体
     * @return
     */
    @Override
    public T info(T t)  {
        return mapper.selectOne(t);
    }

    /**
     * 分页查询列表数据
     * @param t 实体类
     * @return
     */
    @Override
    public List<T> list(T t) {
        return mapper.select(t);
    }

    /**
     * 添加数据接口
     *
     * @param t 实体类
     * @return
     */
    @Override
    public int add(T t) {
        return mapper.insert(t);
    }

    /**
     * 更新数据接口
     *
     * @param t 实体类
     * @return
     */
    @Override
    public int update(T t) {
        return mapper.updateByPrimaryKey(t);
    }

    /**
     * 删除数据接口
     *
     * @param ids
     * @param t   泛型实体
     * @return
     */
    @Override
    public int delete(E ids, T t) {
        return mapper.delete(t);
    }

}
